/**
 * 必须声明的变量
 */
//业务模型声明
var BM_MODELNAME = 'com.dartfar.test.model.BorrowMoney';
//业务模型ID名称声明
var BM_MODELIDNAME = 'id';
//业务模型名称声明
var BM_BUSINESSNAME = 'BorrowMoney';
//数据表格对象声明
var BM_DATAGRID;
//窗口对象声明
var BM_WINDOW;
var BM_WINDOW_VIEW;
//工作流按钮对象声明
var BM_WFBTN;
//业务按钮对象声明
var BM_BSBTN;
//行集合声明
var BM_ROW;

$(function() {		
	/**
	 * 初始化按钮
	 */
	initBtnUI();
	
	/**
	 * 初始化窗口
	 */
	initWindowUI();
	
	/**
	 * 初始化数据表格
	 */
	initDataGridUI();   
	


});

//初始化BTN
function initBtnUI(){
	/**
	 * 获取业务按钮组件ID
	 * @param GETID方法获取业务按钮组件ID
	 */
	BM_BSBTN = GETID(BM_BUSINESSNAME + 'Btn');
	/**
	 * 初始化业务按钮
	 * @param 业务按钮ID
	 * @param 业务模型名称
	 */
	PERM_BTN_INIT(BM_BSBTN, BM_BUSINESSNAME);
	
	/**
	 * 初始化CU面板
	 * @param GETID方法获取CU窗口面板ID
	 * @param 业务模型名称
	 * @param CU窗口保存方法
	 * @param CU窗口关闭方法
	 */
	CU_PANEL_INIT(GETID(BM_BUSINESSNAME + 'Panel'), BM_BUSINESSNAME);

	/**
	 * 初始化V面板
	 * @param GETID方法获取V窗口面板ID
	 * @param 业务模型名称
	 * @param V窗口关闭方法
	 */
	V_PANEL_INIT(GETID(BM_BUSINESSNAME + 'ViewPanel'), BM_BUSINESSNAME);
	
	/**
	 * 获取工作流按钮ID
	 * 
	 */
	BM_WFBTN = GETID(BM_BUSINESSNAME + 'WorkflowBtn');
}

//初始化窗口
function initWindowUI(){
	/**
	 * 获取窗口ID
	 * @param GETID 方法获取 组件ID
	 */
	BM_WINDOW = GETID(BM_BUSINESSNAME + 'Window');
	/**
	 * 初始化窗口
	 * @param 窗口ID
	 * @param 宽度
	 * @param 高度
	 */
	BS_WINDOW_INIT(BM_WINDOW, 500, 400);
	/**
	 * 获取浏览窗口ID
	 * @param GETID 方法获取 组件ID
	 */
	BM_WINDOW_VIEW = GETID(BM_BUSINESSNAME + 'ViewWindow');
	/**
	 * 初始化浏览窗口
	 * @param 窗口ID
	 * @param 宽度
	 * @param 高度
	 */
	BS_WINDOW_INIT(BM_WINDOW_VIEW, 500, 400);
}

//初始化数据表
function initDataGridUI(){
	/**
	 * 获取数据表格ID
	 * @param 获取数据表格ID
	 */
	BM_DATAGRID = GETID(BM_BUSINESSNAME + 'Grid');
	/**
	 * URL参数
	 */
	var URL = 'borrowMoneyAjax!loadBorrowMoneyData';
	/**
	 * 数据表格列集合
	 */
	var COLUMNS = [{field:'person',title:'借款人',width:150},
	               {field:'depart',title:'所在部门',width:150},
	               {field:'num',title:'借款金额',width:100},
	               {field:'des',title:'借款原因',width:250},
	               {field:'workflowStatus',title:'流程状态',width:100},
	               {field:'createDate',title:'申请时间',width:150}
	              ];
	/**
	 * 工具栏ID
	 */
	var TOOLBAR = '#' + BM_BUSINESSNAME + 'ToolBar';
	/**
	 * 初始化数据表格
	 * @param 数据表格ID
	 * @param URL参数
	 * @param 列集合
	 * @param 是否分页
	 * @param 是否单行选择
	 * @param 工具栏
	 * @param 业务模型名称
	 */
	DG_INIT(BM_DATAGRID, URL, COLUMNS, true, true, TOOLBAR, BM_BUSINESSNAME);
	/**
	 * 初始化数据表格分页模块
	 * @param 数据表格ID
	 * @param URL参数
	 * @param 查询条件集合 如果没有写入NULL
	 */
	DG_PAGE_INIT(BM_DATAGRID, URL, null);
}

function OPEN_BorrowMoney_WINDOW(type){
	/**
	 * 清空工作流按钮
	 */
	BM_WFBTN.html('');
	/**
	 * 设置CU窗口保存方法和关闭方法	（*）
	 */
	SET_CU_FUNCTION(BM_CU_SAVE, BM_CU_WINDOW_CLOSE);
	
	if(type == 'view'){
		/**
		 * 是否允许编辑
		 * @param BOOLEAN	这里是浏览窗口 所以禁止文本框编辑 false
		 */
		EDITABLE(false);
		/**
		 * 获取数据集合
		 * @param 数据表格ID
		 */
		BM_ROW = DG_GETROW(BM_DATAGRID);
		/**
		 * 打开浏览窗口
		 */
		BM_V_WINDOW_OPEN();
		
	}else if(type == 'add'){
		
		$('#bmNum').val();
		$('#bmContent').val();
		/**
		 * 是否允许编辑
		 * @param BOOLEAN	这里是新建窗口 允许文本框编辑 true
		 */
		EDITABLE(true);
		/**
		 * 打开窗口
		 * @param 窗口ID
		 * @param 标题
		 * @param 图标
		 */
		BS_WINDOW_OPEN(BM_WINDOW, '借款申请', 'add');	
		
	}else if(type == 'edit'){
		/**
		 * 获取数据集合
		 * @param 数据表格ID
		 */
		BM_ROW = DG_GETROW(BM_DATAGRID);
		/**
		 * 判断行集合是否为NULL
		 * @param 行集合
		 */
		if(ROW_IS_NOT_NULL(BM_ROW)){
			/**
			 * 是否允许编辑
			 * @param BOOLEAN	这里是编辑窗口 允许文本框编辑 true
			 */
			EDITABLE(true);
			/**
			 * 编辑API
			 * @param 数据集合
			 * @param 打开编辑窗口方法
			 */
			AUT_EDIT(BM_ROW, BM_U_WINDOW_OPEN);
		}
		
	}else if(type == 'del'){
		/**
		 * 取得行数据
		 * @param 数据表格ID
		 * @return 数据集合
		 */
		BM_ROW = DG_GETROW(BM_DATAGRID);
		/**
		 * 判断行集合是否为NULL
		 * @param 行集合
		 */
		if(ROW_IS_NOT_NULL(BM_ROW)){
			//AUT_EDIT(row);
		}
	}
}

/**
 * 打开编辑窗口
 */
function BM_U_WINDOW_OPEN(){
	$('#bmId').val(BM_ROW.id);
	$('#bmNum').val(BM_ROW.num);
	$('#bmContent').val(BM_ROW.des);
	/**
	 * 打开业务窗口
	 * @param 窗口ID
	 * @param 标题
	 * @param 图标
	 */
	BS_WINDOW_OPEN(BM_WINDOW, '编辑', 'edit');	
}

/**
 * CU窗口保存与更新方法
 */
function BM_CU_SAVE(){
	//赋值
	var bmId = $('#bmId').val();
	var bmNum = $('#bmNum').val();
	var bmContent = $('#bmContent').val();
	
	if(bmId == ''){
		$.post('borrowMoneyAjax!add', {bmNum:bmNum, bmContent:bmContent},
				function(data){
					/**
					 * 重新加载数据
					 * @param 数据表格ID
					 */
					DG_RELOAD(BM_DATAGRID);
					/**
					 * 弹窗提示
					 * @param 文本内容
					 */
					MESSAGEBOX('借款申请单填写成功,请启动借款审核流程.');
			}, 'json');
	}else{
		$.post('borrowMoneyAjax!edit', {id:BM_ROW.id, bmNum:bmNum, bmContent:bmContent},
				function(data){
				/**
				 * 重新加载数据
				 * @param 数据表格ID
				 */
				DG_RELOAD(BM_DATAGRID);
				/**
				 * 弹窗提示
				 * @param 文本内容
				 */
				MESSAGEBOX('借款申请单编辑成功,请启动借款审核流程.');
			}, 'json');
	}
	/**
	 * 关闭窗口
	 */
	BM_CU_WINDOW_CLOSE();
}

/**
 * 关闭CU窗口
 */
function BM_CU_WINDOW_CLOSE(){
	/**
	 * 设置CU窗口关闭方法
	 * @param 关闭窗口方法
	 */
	WINDOW_CLOSE(BM_WINDOW);
}

/**
 * 打开浏览窗口
 */
function BM_V_WINDOW_OPEN(){
	/**
	 * 设置关闭业务窗口方法 仅限于初始化工作流按钮的窗口
	 * @param 关闭窗口方法
	 */
	WF_SET_CLOSEFUN(BM_V_WINDOW_CLOSE);
	/**
	 * 设置浏览窗口关闭方法
	 * @param 关闭窗口方法
	 */
	SET_V_FUNCTION(BM_V_WINDOW_CLOSE);
	/**
	 * 初始化工作流按钮
	 * @param 模型名称
	 * @param 模型ID名称
	 * @param 行数据
	 * @param 工作流按钮ID
	 * @param 数据表格ID
	 */
	WF_BTN_INIT(BM_MODELNAME, BM_MODELIDNAME, BM_ROW, BM_WFBTN, BM_DATAGRID);
	
	$('#vi_bmId').val(BM_ROW.id);
	$('#vi_bmNum').val(BM_ROW.num);
	$('#vi_bmContent').val(BM_ROW.des);
	/**
	 * 打开业务窗口
	 * @param 窗口ID
	 * @param 标题
	 * @param 图标
	 */
	BS_WINDOW_OPEN(BM_WINDOW_VIEW, '浏览', 'view');	
}

/**
 * 关闭浏览窗口
 */
function BM_V_WINDOW_CLOSE(){
	/**
	 * 关闭窗口
	 * @param 窗口ID
	 */
	WINDOW_CLOSE(BM_WINDOW_VIEW);
}


